// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the PACKDB_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// PACKDB_API functions as being imported from a DLL, whereas this DLL sees symbols
// defined with this macro as being exported.
#ifdef HAS_PACKDB_DLL
#    ifdef BUILD_PACKDB_DLL
#        if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__)
#            define PACKDB_API __declspec(dllexport)
#               else
#            define PACKDB_API
#               endif 
#    else
#        if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__)
#            define PACKDB_API __declspec(dllimport)
#               else
#            define PACKDB_API
#               endif 
#    endif
#else
#    define PACKDB_API 
#endif


#include "SimpleCPPConnectionGenerator.hpp"
#include "SimpleHPPConnectionGenerator.hpp"
#include "DataFileConverter.hpp"

using namespace fctr;

namespace dsg {
// This class is exported from the PackSQL.dll
struct SimpleDBCPPConverter
: DataFileGenerator<SimpleDBCPPConverter>
{
    static const char * Format_Name;
    static const char * Family_Name;
    typedef SimpleCPPConnectionGenerator generator_t;
};

struct SimpleDBHPPConverter
: DataFileGenerator<SimpleDBHPPConverter>
{
    static const char * Format_Name;
    static const char * Family_Name;
    typedef SimpleHPPConnectionGenerator generator_t;
};

}

extern "C" PACKDB_API void PlugInit(va_list vl, void** res);
extern "C" PACKDB_API void PlugTerm(void** res);
